create procedure editarAcciones (@id tinyint, @idModulo tinyint, @nom varchar(35))
as
begin try
	begin transaction
		update ACCIONES
			set IDMODULO = @idModulo, NOMBRE = @nom
			where IDACCION = @id
	commit
end try

begin catch
	IF @@TRANCOUNT > 0
		ROLLBACK

        DECLARE @ErrorMessage nvarchar(4000),  @ErrorSeverity int;
        SELECT @ErrorMessage = ERROR_MESSAGE(),@ErrorSeverity = ERROR_SEVERITY();
        RAISERROR(@ErrorMessage, @ErrorSeverity, 1);

end catch
go

create procedure editarAula (@id smallint, @id_edificio smallint, @nombre_aula char(8), @capacidad_aula tinyint, @multimedia bit, @disponible bit)
as
begin try
	begin transaction
		update AULA
			set ID_EDIFICIO = @id_edificio ,NOMBRE_AULA = @nombre_aula, CAPACIDAD_AULA = @capacidad_aula, MULTIMEDIA = @multimedia, DISPONIBLE = @disponible
			where ID_AULA = @id
	commit
end try

begin catch
	if @@TRANCOUNT > 1
		rollback
	
		declare @mensajeError nvarchar(4000), @gravedadDelError int;
		select @mensajeError = ERROR_MESSAGE(), @gravedadDelError = ERROR_SEVERITY();
		raiserror (@mensajeError, @gravedadDelError, 1);
end catch
go

create procedure editarCalendario (@id_calendario int, @id_curso smallint, @id_catedratico smallint, @id_aula smallint, @id_laboratorio smallint, @idHorario tinyint, @idCalenadrioe smallint, @seccion varchar(5), @remedial bit, @habilitado bit, @nombreCurso varchar (60), @nombreCatedratico varchar(60), @dia tinyint)
as
begin try
	begin transaction
		update CALENDARIO
		set ID_CURSO = @id_curso, ID_CATEDRATICO = @id_catedratico, ID_AULA = @id_aula, ID_LABORATORIO = @id_laboratorio, IDHORARIO = @idHorario,  IDCALENADRIOE = @idCalenadrioe, SECCION = @seccion, REMEDIAL = @remedial, HABILITADO = @habilitado, NOMBRECURSO = @nombreCurso, NOMBRECATEDRATICO = @nombreCatedratico, DIA = @dia
		where ID_CALENDARIO = @id_calendario
	commit
end try

begin catch
	if @@TRANCOUNT > 1
	rollback
	
	declare @mensajeError nvarchar(4000), @gravedadError int;
	select @mensajeError = ERROR_MESSAGE(), @gravedadError = ERROR_SEVERITY();
	raiserror (@mensajeError, @gravedadError, 1);
end catch
go

create procedure editarCargo (@idCargo smallint, @idUsuario tinyint, @id_carrera smallint, @habilitado bit)
as
begin try
	begin transaction
		update CARGO
			set IDUSUARIO = @idUsuario, ID_CARRERA = @id_carrera, HABILITADO = @habilitado
			where IDCARGO = @idCargo
	commit
end try

begin catch
	if @@TRANCOUNT > 1
		rollback
		
		declare @mensajeError nvarchar(4000), @gravedadError int;
		select @mensajeError = ERROR_MESSAGE(), @gravedadError = ERROR_SEVERITY();
		raiserror (@mensajeError, @gravedadError, 1);
end catch
go

create procedure editarCarrera (@id_carrera smallint, @id_facultad smallint, @nombre_carrera varchar(50), @descripcion varchar(200), @habilitado bit)
as
begin try
	begin transaction
		update CARRERA
			set ID_FACULTAD = @id_facultad, NOMBRE_CARRERA = @nombre_carrera, DESCRIPCION = @descripcion, HABILITADO = @habilitado
			where ID_CARRERA = @id_carrera
	commit
end try

begin catch
	if @@trancount > 1
		rollback
		
		declare @mensajeError nvarchar(4000), @gravedadError int;
		select @mensajeError = ERROR_MESSAGE(), @gravedadError = ERROR_SEVERITY();
		raiserror (@mensajeError, @gravedadError, 1);
end catch
go

create procedure editarCatedratico (@id_catedratico smallint, @nombre_catedratico varchar(60), @num_telefono int, @mail varchar(65), @ano_ingreso datetime, @observaciones varchar(250), @habilitado bit)
as
begin try
	begin transaction
		update CATEDRATICO
			set NOMBRE_CATEDRATICO = @nombre_catedratico, NUM_TELEFONO = @num_telefono, MAIL = @mail, ANO_INGRESO = @ano_ingreso, OBSERVACIONES = @observaciones, HABILITADO = @habilitado
			where ID_CATEDRATICO = @id_catedratico
	commit
end try

begin catch
	if @@trancount > 1
		rollback
		
		declare @mensajeError nvarchar(4000), @gravedadError int;
		select @mensajeError = ERROR_MESSAGE(), @gravedadError = ERROR_SEVERITY();
		raiserror (@mensajeError, @gravedadError, 1);
end catch
go

create procedure editarCategoria (@id_categoria smallint, @id_curso smallint, @nombre_categoria varchar(50))
as
begin try
	begin transaction
		update CATEGORIA
			set ID_CURSO = @id_curso, NOMBRE_CATEGORIA= @nombre_categoria
			where ID_CATEGORIA = @id_categoria
	commit
end try

begin catch
	if @@trancount > 1
		rollback
		
		declare @mensajeError nvarchar(4000), @gravedadError int;
		select @mensajeError = ERROR_MESSAGE(), @gravedadError = ERROR_SEVERITY();
		raiserror (@mensajeError, @gravedadError, 1);
end catch
go

create procedure editarCiclo (@id_ciclo smallint, @nombre_ciclo varchar(40), @habilitado bit, @idPensum smallint)
as
begin try
	begin transaction
		update CICLO
			set NOMBRE_CICLO = @nombre_ciclo, HABILITADO = @habilitado, IdPensum = @idPensum
			where ID_CICLO = @id_ciclo
	commit
end try

begin catch
	if @@trancount > 1
		rollback
		
		declare @mensajeError nvarchar(4000), @gravedadError int;
		select @mensajeError = ERROR_MESSAGE(), @gravedadError = ERROR_SEVERITY();
		raiserror (@mensajeError, @gravedadError, 1);
end catch
go

create procedure editarCompetencias (@id_competencias smallint, @id_catedratico smallint, @id_curso smallint, @ponderacion tinyint, @veces_imparticion tinyint, @observaciones varchar(250))
as
begin try
	begin transaction
		update COMPETENCIA
			set ID_CATEDRATICO = @id_catedratico, ID_CURSO = @id_curso, PONDERACION = @ponderacion, VECES_IMPARTICION = @veces_imparticion, OBSERVACIONES = @observaciones
			where ID_COMPETENCIA = @id_competencias
	commit
end try

begin catch
	if @@trancount > 1
		rollback
		
		declare @mensajeError nvarchar(4000), @gravedadError int;
		select @mensajeError = ERROR_MESSAGE(), @gravedadError = ERROR_SEVERITY();
		raiserror (@mensajeError, @gravedadError, 1);
end catch
go

create procedure editarCurso (@id_curso smallint, @id_ciclo smallint, @nombre_curso varchar(50), @creditos_teoricos tinyint, @creditos_practicos tinyint, @laboratorio bit, @habilitado bit)
as
begin try
	begin transaction
		update CURSO
			set ID_CICLO = @id_ciclo, NOMBRE_CURSO = @nombre_curso, CREDITOS_TEORICOS = @creditos_teoricos, CREDITOS_PRACTICOS = @creditos_practicos, LABORATORIO = @laboratorio, HABILITADO = @habilitado
			where ID_CURSO = @id_curso
	commit
end try

begin catch
	if @@TRANCOUNT > 1
		rollback
	
		declare @mensajeError nvarchar(4000), @gravedadDelError int;
		select @mensajeError = ERROR_MESSAGE(), @gravedadDelError = ERROR_SEVERITY();
		raiserror (@mensajeError, @gravedadDelError, 1);
end catch
go

create procedure editarEdificio (@id_edificio smallint, @nombre_edificio varchar(50), @num_aulas smallint, @num_laboratorios tinyint, @direccion_edificio varchar(200))
as
begin try
	begin transaction
		update EDIFICIO
			set NOMBRE_EDIFICIO = @nombre_edificio, NUM_AULAS = @num_aulas, NUM_LABORATORIOS = @num_laboratorios, DIRECCION_EDIFICIO = @direccion_edificio
			where ID_EDIFICIO = @id_edificio
	commit
end try

begin catch
	if @@TRANCOUNT > 1
		rollback
	
		declare @mensajeError nvarchar(4000), @gravedadDelError int;
		select @mensajeError = ERROR_MESSAGE(), @gravedadDelError = ERROR_SEVERITY();
		raiserror (@mensajeError, @gravedadDelError, 1);
end catch
go

create procedure editarEdp (@id_edp smallint, @id_categoria smallint, @nombre_edp varchar(50), @creditos_edp tinyint, @habilitado bit)
as
begin try
	begin transaction
		update EDP
			set ID_CATEGORIA = @id_categoria, NOMBRE_EDP = @nombre_edp, CREDITOS_EDP = @creditos_edp, HABILITADO = @habilitado
			where ID_EDP = @id_edp
	commit
end try

begin catch
	if @@TRANCOUNT > 1
		rollback
	
		declare @mensajeError nvarchar(4000), @gravedadDelError int;
		select @mensajeError = ERROR_MESSAGE(), @gravedadDelError = ERROR_SEVERITY();
		raiserror (@mensajeError, @gravedadDelError, 1);
end catch
go

create procedure editarEncabezadoCalendario (@id_calendarioe smallint, @id_usuario smallint, @id_carrera smallint, @id_ciclo smallint, @fecha date)
as
begin try
	begin transaction
		update ENCABEZADOCALENARIO
			set IDUSUARIO = @id_usuario, ID_CARRERA = @id_carrera, ID_CICLO = @id_ciclo, FECHA = @fecha
			where IDCALENADRIOE = @id_calendarioe
	commit
end try

begin catch
	if @@TRANCOUNT > 1
		rollback
	
		declare @mensajeError nvarchar(4000), @gravedadDelError int;
		select @mensajeError = ERROR_MESSAGE(), @gravedadDelError = ERROR_SEVERITY();
		raiserror (@mensajeError, @gravedadDelError, 1);
end catch
go

create procedure editarFacultad (@id_facultad smallint, @id_edificio smallint, @nombre_facultad varchar(50), @nombre_coordinador varchar(50), @numer_telefono int, @habilitado bit)
as
begin try
	begin transaction
		update FACULTAD
			set ID_EDIFICIO = @id_edificio, NOMBRE_FACULTAD = @nombre_facultad, NOMBRE_COORDINADOR = @nombre_coordinador, NUMERO_TELEFONO = @numer_telefono, HABILITADO = @habilitado
			where ID_FACULTAD = @id_facultad
	commit
end try

begin catch
	if @@TRANCOUNT > 1
		rollback
	
		declare @mensajeError nvarchar(4000), @gravedadDelError int;
		select @mensajeError = ERROR_MESSAGE(), @gravedadDelError = ERROR_SEVERITY();
		raiserror (@mensajeError, @gravedadDelError, 1);
end catch
go

create procedure editarHorario (@idHorario tinyint, @horaInicio smallint, @horaFinal smallint)
as
begin try
	begin transaction
		update HORARIO
			set HORAINICIO = @horaInicio, HORAFINAL = @horaFinal
			where IDHORARIO = @idHorario
	commit
end try

begin catch
	if @@TRANCOUNT > 1
		rollback
	
		declare @mensajeError nvarchar(4000), @gravedadDelError int;
		select @mensajeError = ERROR_MESSAGE(), @gravedadDelError = ERROR_SEVERITY();
		raiserror (@mensajeError, @gravedadDelError, 1);
end catch
go

create procedure editarHorarioAula (@id_hraula smallint, @id_aula smallint, @idHorario smallint, @dia_aula tinyint)
as
begin try
	begin transaction
		update HORARIO_AULA
			set ID_AULA = @id_aula, IDHORARIO = @idHorario, DIA_AULA = @dia_aula
			where ID_HRAULA = @id_hraula
	commit
end try

begin catch
	if @@TRANCOUNT > 1
		rollback
	
		declare @mensajeError nvarchar(4000), @gravedadDelError int;
		select @mensajeError = ERROR_MESSAGE(), @gravedadDelError = ERROR_SEVERITY();
		raiserror (@mensajeError, @gravedadDelError, 1);
end catch
go

create procedure editarHorarioCatedratico (@id_hrcatedratico smallint, @id_catedratico smallint, @idHorario tinyint, @dia tinyint)
as
begin try
	begin transaction
		update HORARIO_CATEDRATICO
			set ID_CATEDRATICO = @id_catedratico, IDHORARIO = @idHorario, DIA = @dia
			where ID_HRCATEDRATICO = @id_hrcatedratico
	commit
end try

begin catch
	if @@TRANCOUNT > 1
		rollback
	
		declare @mensajeError nvarchar(4000), @gravedadDelError int;
		select @mensajeError = ERROR_MESSAGE(), @gravedadDelError = ERROR_SEVERITY();
		raiserror (@mensajeError, @gravedadDelError, 1);
end catch
go

create procedure editarHorarioLab (@idHorarioLab smallint, @id_laboratorio smallint, @idHorario tinyint, @dia_lab tinyint)
as
begin try
	begin transaction
		update HORARIO_LAB
			set ID_LABORATORIO = @id_laboratorio, IDHORARIO = @idHorario, DIA_LAB = @dia_lab
			where IDHORARIOLAB = @idHorarioLab
	commit
end try

begin catch
	if @@TRANCOUNT > 1
		rollback
	
		declare @mensajeError nvarchar(4000), @gravedadDelError int;
		select @mensajeError = ERROR_MESSAGE(), @gravedadDelError = ERROR_SEVERITY();
		raiserror (@mensajeError, @gravedadDelError, 1);
end catch
go

create procedure editarJornadaCarrera (@id_jornada smallint, @id_carrera smallint, @nombre_jornada varchar(20), @hora_inicio smallint, @hora_fin smallint, @jornada_habilitada bit)
as
begin try
	begin transaction
		update JORNADA_CARRERA
			set ID_CARRERA = @id_carrera, NOMBRE_JORNADA = @nombre_jornada, HORA_INICIO = @hora_inicio, HORA_FIN = @hora_fin, JORNADA_HABILITADA = @jornada_habilitada
			where ID_JORNADA = @id_jornada
	commit
end try

begin catch
	if @@TRANCOUNT > 1
		rollback
	
		declare @mensajeError nvarchar(4000), @gravedadDelError int;
		select @mensajeError = ERROR_MESSAGE(), @gravedadDelError = ERROR_SEVERITY();
		raiserror (@mensajeError, @gravedadDelError, 1);
end catch
go

create procedure editarLaboratorio (@id_laboratorio smallint, @id_edificio smallint, @nombre_lab varchar(50), @capacidad_lab tinyint, @encargado_lab varchar(50), @descripcion_lab varchar(200), @disponible_lab bit)
as
begin try
	begin transaction
		update LABORATORIO
			set ID_EDIFICIO = @id_edificio, NOMBRE_LAB = @nombre_lab, CAPACIDAD_LAB = @capacidad_lab, ENCARGADO_LAB = @encargado_lab, DESCRIPCION_LAB = @descripcion_lab, DISPONIBLE_LAB = @disponible_lab
			where ID_LABORATORIO = @id_laboratorio
	commit
end try

begin catch
	if @@TRANCOUNT > 1
		rollback
	
		declare @mensajeError nvarchar(4000), @gravedadDelError int;
		select @mensajeError = ERROR_MESSAGE(), @gravedadDelError = ERROR_SEVERITY();
		raiserror (@mensajeError, @gravedadDelError, 1);
end catch
go

create procedure editarModulos (@idModulo tinyint, @nombre varbinary(30))
as
begin try
	begin transaction
		update MODULOS
			set NOMBRE = @nombre
			where IDMODULO = @idModulo
	commit
end try

begin catch
	if @@TRANCOUNT > 1
		rollback
	
		declare @mensajeError nvarchar(4000), @gravedadDelError int;
		select @mensajeError = ERROR_MESSAGE(), @gravedadDelError = ERROR_SEVERITY();
		raiserror (@mensajeError, @gravedadDelError, 1);
end catch
go

create procedure editarPensum (@id_pensum smallint, @numero_pensum varchar(10), @id_carrera smallint, @sede varchar(20), @num_ciclos tinyint, @duracion float, @habilitado bit, @fechaIngreso date)
as
begin try
	begin transaction
		update PENSUM
			set NUMEROPENSUM = @numero_pensum, ID_CARRERA = @id_carrera, SEDE = @sede, NUM_CICLOS = @num_ciclos, DURACION = @duracion, HABILITADO = @habilitado, FECHAINGRESO = @fechaIngreso
			where IDPENSUM = @id_pensum
	commit
end try

begin catch
	if @@TRANCOUNT > 1
		rollback
	
		declare @mensajeError nvarchar(4000), @gravedadDelError int;
		select @mensajeError = ERROR_MESSAGE(), @gravedadDelError = ERROR_SEVERITY();
		raiserror (@mensajeError, @gravedadDelError, 1);
end catch
go

create procedure editarPermisos (@idPermisos smallint, @idUsuario tinyint, @idModulo tinyint, @idAccion tinyint)
as
begin try
	begin transaction
		update PERMISOS
			set IDUSUARIO = @idUsuario, IDMODULO = @idModulo, IDACCION = @idAccion
			where @idPermisos = @idPermisos
	commit
end try

begin catch
	if @@TRANCOUNT > 1
		rollback
	
		declare @mensajeError nvarchar(4000), @gravedadDelError int;
		select @mensajeError = ERROR_MESSAGE(), @gravedadDelError = ERROR_SEVERITY();
		raiserror (@mensajeError, @gravedadDelError, 1);
end catch
go

create procedure editarPrerrequisitosCredito (@id_curso smallint, @cantidadCreditos tinyint)
as
begin try
	begin transaction
		update PRERREQUISITOCREDITOS
			set CANTIDADCREDITOS = @cantidadCreditos
			where ID_CURSO = @id_curso
	commit
end try

begin catch
	if @@TRANCOUNT > 1
		rollback
	
		declare @mensajeError nvarchar(4000), @gravedadDelError int;
		select @mensajeError = ERROR_MESSAGE(), @gravedadDelError = ERROR_SEVERITY();
		raiserror (@mensajeError, @gravedadDelError, 1);
end catch
go

create procedure editarPrerrequisitoCurso (@idPrerrequisitoCurso tinyint, @id_curso smallint, @id_cursop smallint)
as
begin try
	begin transaction
		update PRERREQUISITOCURSO
			set ID_CURSO = @id_curso, ID_CURSOP = @id_cursop
			where IDPRERREQUISITOCURSO = @idPrerrequisitoCurso
	commit
end try

begin catch
	if @@TRANCOUNT > 1
		rollback
	
		declare @mensajeError nvarchar(4000), @gravedadDelError int;
		select @mensajeError = ERROR_MESSAGE(), @gravedadDelError = ERROR_SEVERITY();
		raiserror (@mensajeError, @gravedadDelError, 1);
end catch
go

create procedure editarProfesion (@id_profesion smallint, @id_titulo smallint, @id_catedratico smallint, @lugar_profesion varchar(50), @ano_graduacion smallint)
as
begin try
	begin transaction
		update PROFESION
			set ID_TITULO = @id_titulo, ID_CATEDRATICO = @id_catedratico, LUGAR_PROFESION = @lugar_profesion, ANO_GRADUACION = @ano_graduacion
			where ID_PROFESION = @id_profesion
	commit
end try

begin catch
	if @@TRANCOUNT > 1
		rollback
	
		declare @mensajeError nvarchar(4000), @gravedadDelError int;
		select @mensajeError = ERROR_MESSAGE(), @gravedadDelError = ERROR_SEVERITY();
		raiserror (@mensajeError, @gravedadDelError, 1);
end catch
go

create procedure editarTitulo (@id_titulo smallint, @nombre_titulo varchar(75))
as
begin try
	begin transaction
		update TITULO
			set NOMBRE_TITULO = @nombre_titulo
			where ID_TITULO = @id_titulo
	commit
end try

begin catch
	if @@TRANCOUNT > 1
		rollback
	
		declare @mensajeError nvarchar(4000), @gravedadDelError int;
		select @mensajeError = ERROR_MESSAGE(), @gravedadDelError = ERROR_SEVERITY();
		raiserror (@mensajeError, @gravedadDelError, 1);
end catch
go

create procedure editarUsuario (@idUsuario tinyint, @userName nvarchar(30), @nombre varchar(60), @telefono smallint, @puesto varchar(70), @habilitado bit)
as
begin try
	begin transaction
		update USUARIOS
			set USERNAME = @userName, NOMBRE = @nombre, TELEFONO = @telefono, PUESTO = @puesto, HABILITADO = @habilitado
			where IDUSUARIO = @idUsuario
	commit
end try

begin catch
	if @@TRANCOUNT > 1
		rollback
	
		declare @mensajeError nvarchar(4000), @gravedadDelError int;
		select @mensajeError = ERROR_MESSAGE(), @gravedadDelError = ERROR_SEVERITY();
		raiserror (@mensajeError, @gravedadDelError, 1);
end catch
go